﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;

namespace Ocean.His.MedicalInsurance.Tool.Models
{
    /// <summary>
    /// 结算信息
    /// </summary>
    [DataContract]
    public class SI2103Setlinfo
    {
        /// <summary>
        /// 就诊ID
        /// </summary>
        [DataMember(Name = "mdtrt_id")]
        public string MdtrtId { get; set; }

        /// <summary>
        /// 结算ID
        /// </summary>
        [DataMember(Name = "setl_id")]
        public string SetlId { get; set; }

        /// <summary>
        /// 清算经办机构
        /// </summary>
        [DataMember(Name = "clr_optins")]
        public string ClrOptins { get; set; }

        /// <summary>
        /// 医疗费总额
        /// </summary>
        [DataMember(Name = "medfee_sumamt")]
        public decimal MedfeeSumamt { get; set; }

        /// <summary>
        /// 结算时间
        /// </summary>
        [DataMember(Name = "setl_time")]
        public string SetlTime { get; set; }

        /// <summary>
        /// 全自费金额
        /// </summary>
        [DataMember(Name = "fulamt_ownpay_amt")]
        public decimal FulamtOwnpayAmt { get; set; }

        /// <summary>
        /// 超限价自费费用
        /// </summary>
        [DataMember(Name = "overlmt_selfpay")]
        public decimal OverlmtSelfpay { get; set; }

        /// <summary>
        /// 先行自付金额
        /// </summary>
        [DataMember(Name = "preselfpay_amt")]
        public decimal PreselfpayAmt { get; set; }

        /// <summary>
        /// 符合政策范围金额
        /// </summary>
        [DataMember(Name = "inscp_scp_amt")]
        public decimal InscpScpAmt { get; set; }

        /// <summary>
        /// 实际支付起付线
        /// </summary>
        [DataMember(Name = "act_pay_dedc")]
        public decimal? ActPayDedc { get; set; }

        /// <summary>
        /// 基本医疗保险统筹基金支出
        /// </summary>
        [DataMember(Name = "hifp_pay")]
        public decimal HifpPay { get; set; }

        /// <summary>
        /// 基本医疗保险统筹基金支付比例
        /// </summary>
        [DataMember(Name = "pool_prop_selfpay")]
        public decimal? PoolPropSelfpay { get; set; }

        /// <summary>
        /// 公务员医疗补助资金支出
        /// </summary>
        [DataMember(Name = "cvlserv_pay")]
        public decimal CvlservPay { get; set; }

        /// <summary>
        /// 企业补充医疗保险基金支出
        /// </summary>
        [DataMember(Name = "hifes_pay")]
        public decimal HifesPay { get; set; }

        /// <summary>
        /// 居民大病保险资金支出
        /// </summary>
        [DataMember(Name = "hifmi_pay")]
        public decimal HifmiPay { get; set; }

        /// <summary>
        /// 职工大额医疗费用补助基金支出
        /// </summary>
        [DataMember(Name = "hifob_pay")]
        public decimal HifobPay { get; set; }

        /// <summary>
        /// 医疗救助基金支出
        /// </summary>
        [DataMember(Name = "maf_pay")]
        public decimal MafPay { get; set; }

        /// <summary>
        /// 其他支出
        /// </summary>
        [DataMember(Name = "oth_pay")]
        public decimal OthPay { get; set; }

        /// <summary>
        /// 基金支付总额
        /// </summary>
        [DataMember(Name = "fund_pay_sumamt")]
        public decimal FundPaySumamt { get; set; }

        /// <summary>
        /// 个人支付金额
        /// </summary>
        [DataMember(Name = "psn_pay")]
        public decimal PsnPay { get; set; }

        /// <summary>
        /// 个人账户支出
        /// </summary>
        [DataMember(Name = "acct_pay")]
        public decimal AcctPay { get; set; }

        /// <summary>
        /// 现金支付金额
        /// </summary>
        [DataMember(Name = "cash_payamt")]
        public decimal CashPayamt { get; set; }

        /// <summary>
        /// 余额
        /// </summary>
        [DataMember(Name = "balc")]
        public decimal Balc { get; set; }

        /// <summary>
        /// 个人账户共济支付金额
        /// </summary>
        [DataMember(Name = "acct_mulaid_pay")]
        public decimal? AcctMulaidPay { get; set; }

        /// <summary>
        /// 医药机构结算ID
        /// </summary>
        [DataMember(Name = "medins_setl_id")]
        public string MedinsSetlId { get; set; }

        /// <summary>
        /// 字段扩展
        /// </summary>
        [DataMember(Name = "expContent")]
        public string ExpContent { get; set; }
    }

    /// <summary>
    /// 结算基金分项信息
    /// </summary>
    [DataContract]
    public class SI2103Setldetail
    {
        /// <summary>
        /// 基金支付类型
        /// </summary>
        [DataMember(Name = "fund_pay_type")]
        public string FundPayType { get; set; }

        /// <summary>
        /// 符合政策范围金额
        /// </summary>
        [DataMember(Name = "inscp_scp_amt")]
        public string InscpScpAmt { get; set; }

        /// <summary>
        /// 本次可支付限额金额
        /// </summary>
        [DataMember(Name = "crt_payb_lmt_amt")]
        public string CrtPaybLmtAmt { get; set; }

        /// <summary>
        /// 基金支付金额
        /// </summary>
        [DataMember(Name = "fund_payamt")]
        public string FundPayamt { get; set; }

        /// <summary>
        /// 基金支付类型名称
        /// </summary>
        [DataMember(Name = "fund_pay_type_name")]
        public string FundPayTypeName { get; set; }

        /// <summary>
        /// 结算过程信息
        /// </summary>
        [DataMember(Name = "setl_proc_info")]
        public string SetlProcInfo { get; set; }
    }

    /// <summary>
    /// 
    /// </summary>
    [DataContract]
    public class SI2103OutputModel
    {
        [DataMember(Name = "setlinfo")]
        public SI2103Setlinfo Setlinfo { get; set; }

        [DataMember(Name = "setldetail")]
        public List<SI2103Setldetail> Setldetail { get; set; }
    }

    /// <summary>
    /// 2103结算撤销输出
    /// </summary>
    [DataContract]
    public class SI2103ResponseModel : SIBaseResponseModel
    {
        [DataMember(Name = "output")]
        public SI2103OutputModel Output { get; set; }
    }
}
